
/////////////////////////
// File: camera_array_matching.h
// Authors: Brian Fehrman and Scott Logan and Matt Richard
// Date: 4-9-2013
// 
// Purpose: Header file for the matching functions
//
/////////////////////////

#ifndef _CAMERA_ARRAY_MATCHING_H_
#define _CAMERA_ARRAY_MATCHING_H_

#include <opencv2/core/core.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <sstream>
#include <iostream>
#include <vector>
#include <sys/stat.h>
#include <time.h>
#include <iomanip>

void compute_diff_mat( Mat img, Mat matches, Mat& diff_mat, bool x_change, bool y_change );
double compute_mean( Mat& image );
double compute_std_dev( Mat& image, double mean );
double normalized_correlation( Mat& img_1, Mat& img_2, double mean_1, double mean_2,
                                 double std_dev_1, double std_dev_2 );
void template_matching( Mat image_1, Mat image_2, int template_size, Point search_region, Mat& matches );
void opencv_template_matching( Mat img_1, Mat img_2, int template_size, Point search_region, Mat& matches );
void impulse_filter( Mat& src, Mat& dst, double thresh, int win_size );
double my_phase_correlation( Mat& search_temp, Mat& des_temp, Point &max_loc );
void template_matching_four_camera(  );

#endif
